Backend Master Class [Golang + Postgres + Kubernetes + gRPC]
نکته:
آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
نمونه ویدیوها:
توضیحات دوره:
همه چیز را در مورد توسعه وب باطن بیاموزید: Golang، Postgres، Redis، Gin، gRPC، Docker، Kubernetes، AWS، طرح پایگاه داده طراحی CI/CD با استفاده از DBML و تولید خودکار کد SQL از آن. درک عمیق سطوح جداسازی DB، تراکنش ها و نحوه اجتناب از آن بن بست تولید خودکار کد Golang برای تعامل با پایگاه داده ایجاد یک وب سرویس باطن RESTful با استفاده از چارچوب Gin ایمن API ها با احراز هویت کاربر، JWT و PASETO نوشتن مجموعه تست قوی تر با پوشش بالا با استفاده از رابط ها و تمسخر ساخت یک تصویر Docker حداقل برای استقرار و استفاده Docker-compose برای توسعه راه اندازی Github Action برای ساخت و استقرار خودکار برنامه در خوشه AWS Kubernetes ثبت دامنه و پیکربندی ورودی Kubernetes برای هدایت ترافیک به سرویس وب فعال کردن صدور خودکار و تمدید گواهی TLS برای دامنه با Let's Encrypt Take your web خدمات به سطح بعدی با gRPC و gRPC gateway کارگران پس زمینه را برای پردازش وظایف به صورت ناهمزمان با Redis اجرا کنید و Asynq پیش نیازها:فقط مهارت اولیه برنامه نویسی مورد نیاز است.
در این دوره آموزشی، گام به گام نحوه طراحی، توسعه و استقرار یک وب سرویس پشتیبان را از ابتدا یاد خواهید گرفت. من معتقدم بهترین راه برای یادگیری برنامه نویسی ساختن یک اپلیکیشن واقعی است. بنابراین، در طول دوره، یاد خواهید گرفت که چگونه یک وب سرویس پشتیبان برای یک بانک ساده بسازید. APIهایی را برای frontend فراهم می کند تا کارهای زیر را انجام دهد:
حسابهای بانکی ایجاد و مدیریت کنید.
همه تغییرات موجودی را در هر یک از حساب ها ثبت کنید.
انتقال پول بین 2 حساب انجام دهید.
زبان برنامه نویسی که ما برای توسعه این سرویس استفاده خواهیم کرد Golang است، اما این دوره فقط در مورد کدنویسی در Go نیست. شما موضوعات مختلف زیادی را در مورد توسعه وب باطن یاد خواهید گرفت. آنها در 5 بخش ارائه شده اند:
در بخش اول، شما عمیقاً در مورد نحوه طراحی پایگاه داده، تولید کدهایی برای صحبت با DB به روشی سازگار و قابل اعتماد با استفاده از تراکنش ها، درک سطوح جداسازی DB و نحوه استفاده صحیح از آن در تولید یاد خواهید گرفت. علاوه بر پایگاه داده، نحوه استفاده از docker برای توسعه محلی، نحوه استفاده از Git برای مدیریت کدهای خود، و نحوه استفاده از GitHub Action برای اجرای خودکار تست های واحد را نیز خواهید آموخت.
در بخش دوم، نحوه ساخت مجموعه ای از API های HTTP RESTful با استفاده از Gin - یکی از محبوب ترین فریم ورک های Golang برای ساخت سرویس های وب را یاد خواهید گرفت. این شامل همه چیز از بارگیری تنظیمات برنامه، تمسخر DB برای تست های واحد قوی تر، رسیدگی به خطاها، احراز هویت کاربران و ایمن سازی API ها با توکن های دسترسی JWT و PASETO است.
در بخش سوم، یاد خواهید گرفت که چگونه برنامه خود را با Docker بسازید و آن را در یک خوشه تولیدی Kubernetes در AWS مستقر کنید. سخنرانی ها با یک راهنمای گام به گام بسیار دقیق هستند، از نحوه ساخت یک تصویر مینیمال داکر، راه اندازی یک حساب کاربری لایه آزاد AWS، ایجاد پایگاه داده تولید، ذخیره و بازیابی اسرار تولید، ایجاد یک خوشه Kubernetes با EKS، از GitHub Action برای ساخت و استقرار خودکار تصویر در خوشه EKS، خرید یک نام دامنه و مسیریابی ترافیک به سرویس، ایمن کردن اتصال با HTTPS و تمدید خودکار گواهی TLS از Let's Encrypt استفاده کنید.
در بخش چهارم، چندین موضوع پیشرفته پیشرفته مانند مدیریت جلسات کاربر، ساخت APIهای gRPC، استفاده از دروازه gRPC برای ارائه همزمان درخواستهای gRPC و HTTP، تعبیه اسناد Swagger به عنوان بخشی از سرویس پشتیبان بحث خواهیم کرد. بهروزرسانی بخشی از یک رکورد با استفاده از پارامترهای اختیاری، و نوشتن میانافزارهای HTTP لاگر ساختیافته و رهگیرهای gRPC.
سپس بخش پنجم شما را با پردازش ناهمزمان در Golang با استفاده از پسزمینهکارها و Redis بهعنوان صف پیام آن آشنا میکند، و چگونه میتوانید سرور را بهخوبی خاموش کنید تا از منابع پردازشی خود محافظت کنید. از آنجایی که این بخش هنوز در حال انجام است، ما به ساخت و آپلود ویدیوهای جدید در مورد موضوعات جدید در آینده ادامه خواهیم داد، مانند: ارسال ایمیل، خاموش کردن سرورها، CORS، درج انبوه و غیره. بنابراین لطفاً برای بررسی به اینجا بازگردید. آنها هر از گاهی خارج می شوند.
این دوره با جزئیات بسیار طراحی شده است، به طوری که همه، حتی کسانی که تجربه برنامه نویسی بسیار کمی دارند، می توانند آن را درک کنند و به تنهایی انجام دهند. من کاملاً معتقدم که پس از دوره، شما می توانید با اطمینان بیشتر و موثرتر روی پروژه های خود کار کنید.
سرفصل ها و درس ها
کار با پایگاه داده [Postgres + SQLC]
Working with database [Postgres + SQLC]
طرح DB را طراحی کنید و کد SQL را با dbdiagram.io تولید کنید
Design DB schema and generate SQL code with dbdiagram.io
نصب و استفاده از Docker + Postgres + TablePlus برای ایجاد طرح DB
Install & use Docker + Postgres + TablePlus to create DB schema
نحوه نوشتن و اجرای مهاجرت پایگاه داده در Golang
How to write & run database migration in Golang
ایجاد کد CRUD Golang از SQL | مقایسه db/sql، gorm، sqlx و sqlc
Generate CRUD Golang code from SQL | Compare db/sql, gorm, sqlx & sqlc
تست های واحد را برای پایگاه داده CRUD با داده های تصادفی در Golang بنویسید
Write unit tests for database CRUD with random data in Golang
روشی تمیز برای پیاده سازی تراکنش پایگاه داده در Golang
A clean way to implement database transaction in Golang
قفل تراکنش DB و نحوه مدیریت بن بست در Golang
DB transaction lock & How to handle deadlock in Golang
چگونه از بن بست در تراکنش DB جلوگیری کنیم؟ سوالات سفارش مهم است!
How to avoid deadlock in DB transaction? Queries order matters!
سطوح جداسازی تراکنش ها را عمیقاً درک کنید و پدیده ها را بخوانید
Deeply understand transaction isolation levels & read phenomena
راه اندازی Github Actions برای Golang + Postgres برای اجرای تست های خودکار
Setup Github Actions for Golang + Postgres to run automated tests
ساخت API HTTP JSON RESTful [Gin + JWT + PASETO]
Building RESTful HTTP JSON API [Gin + JWT + PASETO]
RESTful HTTP API را در Go با استفاده از Gin پیاده سازی کنید
Implement RESTful HTTP API in Go using Gin
پیکربندی را از متغیرهای فایل و محیط در Go with Viper بارگیری کنید
Load config from file & environment variables in Go with Viper
DB ساختگی برای آزمایش HTTP API در Go و پوشش 100٪
Mock DB for testing HTTP API in Go and achieve 100% coverage
API انتقال پول را با اعتبارسنجی پارامترهای سفارشی پیاده سازی کنید
Implement transfer money API with a custom params validator
جدول کاربران را با محدودیت های کلیدی منحصر به فرد و خارجی در PostgreSQL اضافه کنید
Add users table with unique & foreign key constraints in PostgreSQL
نحوه مدیریت صحیح خطاهای DB در Golang
How to handle DB errors in Golang correctly
چگونه رمزهای عبور را به صورت امن ذخیره کنیم؟ رمز عبور را در Go with Bcrypt هش کنید!
How to securely store passwords? Hash password in Go with Bcrypt!
نحوه نوشتن تست های واحد قوی تر با تطبیق گوموک سفارشی
How to write stronger unit tests with a custom gomock matcher
چرا PASETO برای احراز هویت مبتنی بر توکن بهتر از JWT است؟
Why PASETO is better than JWT for token-based authentication?
نحوه ایجاد و تأیید توکن JWT و PASETO در Golang
How to create and verify JWT & PASETO token in Golang
API کاربر ورود به سیستم را پیاده سازی کنید که رمز دسترسی PASETO یا JWT را در Go برمی گرداند
Implement login user API that returns PASETO or JWT access token in Go
پیاده سازی میان افزار احراز هویت و قوانین مجوز در Golang با استفاده از Gin
Implement authentication middleware and authorization rules in Golang using Gin
استقرار برنامه در تولید [Docker + Kubernetes + AWS]
Deploying the application to production [Docker + Kubernetes + AWS]
چگونه یک تصویر کوچک Golang Docker با یک Dockerfile چند مرحله ای بسازیم
How to build a small Golang Docker image with a multistage Dockerfile
نحوه استفاده از شبکه داکر برای اتصال 2 کانتینر مستقل
How to use docker network to connect 2 stand-alone containers
نحوه نوشتن فایل docker-compose و کنترل سفارشات راه اندازی سرویس
How to write docker-compose file and control service start-up orders
نحوه ایجاد یک حساب کاربری AWS لایه آزاد
How to create a free-tier AWS account
ساخت خودکار و انتقال تصویر داکر به AWS ECR با Github Actions
Auto build & push docker image to AWS ECR with Github Actions
نحوه ایجاد یک پایگاه داده تولید در AWS RDS
How to create a production database on AWS RDS
اسرار تولید را با مدیر اسرار AWS ذخیره و بازیابی کنید
Store & retrieve production secrets with AWS secrets manager
معماری Kubernetes و نحوه ایجاد یک خوشه EKS در AWS
Kubernetes architecture & How to create an EKS cluster on AWS
نحوه استفاده از kubectl و k9s برای اتصال به خوشه kubernetes در AWS EKS
How to use kubectl & k9s to connect to a kubernetes cluster on AWS EKS
نحوه استقرار یک برنامه وب در خوشه Kubernetes در AWS EKS
How to deploy a web app to Kubernetes cluster on AWS EKS
ثبت دامنه و تنظیم A-record با استفاده از Route53
Register a domain & set up A-record using Route53
نحوه استفاده از Ingress برای هدایت ترافیک به سرویس های مختلف در Kubernetes
How to use Ingress to route traffics to different services in Kubernetes
صدور خودکار و تمدید گواهینامه های TLS با مدیر گواهی و Let's Encrypt
Auto issue & renew TLS certificates with cert-manager and Let's Encrypt
استقرار خودکار به Kubernetes با Github Action
Automatic deploy to Kubernetes with Github Action
نمایش نظرات